jQuery(document).ready(function()
    {
	// Por defecto, el formulario para modificar un cliente se encuentra oculto.
	jQuery("#table_edicion").hide();



	// Filas '.resultado'
	jQuery(".resultado")
		.hover
			(
			function () { jQuery(this).addClass("fila_hover"); },
			function () { jQuery(this).removeClass("fila_hover");}
			)
		.click(function()
			{
			// Habilito el boton 'Eliminar'.
			jQuery("button[name='eliminar']").removeAttr('disabled','disabled');

			// Muestro el cartel de espera.
			msjLoading("table_resultados",true);

			// Busco los datos del usuario.
			jQuery.ajax({
						type: 'POST',
						url: 'svcs/clientes.jsp',
						dataType: 'json',
						data: {'service': 'load',
							   'id': this.id,
							   'timestamp': timestamp()},
						success: success_load_cliente,
						error: error_load_cliente
						});

			return false;
			});



	// Boton 'Crear cliente'.
	jQuery("button[name='alta']").click(function()
        {
		// Limpio todos los campos.
		jQuery("#form_edicion [name='id']").val("");
		jQuery("#form_edicion [name='descripcion']").val("");
		jQuery("#form_edicion [name='fantasia']").removeAttr("checked");
		jQuery("#form_edicion [name='activo']").attr("checked","checked");

		// Deshabilito el boton 'Eliminar'.
		jQuery("button[name='eliminar']").attr('disabled','disabled');

		// Muestro el formulario.
		jQuery('#div_resultados').hide("blind", {}, 300, function()
			{ jQuery('#table_edicion').show("blind", {}, 300); });

		return false;
		});



	// Boton 'Cancelar'.
    jQuery("button[name='cancelar']").click(function()
        {
		jQuery('#table_edicion').hide("blind", {}, 300, function()
			{ jQuery('#div_resultados').show("blind", {}, 300); });

		return false;
		});



	// Boton 'Eliminar'.
	jQuery("button[name='eliminar']").click(function()
			{
			// Muestro el cartel de espera.
			msjLoading("table_edicion",true);

			// Elimino el usuario.
			jQuery.ajax({
						type: 'POST',
						url: 'svcs/clientes.jsp',
						dataType: 'json',
						data: {'service': 'delete',
							   'id': jQuery("#form_edicion [name='id']").val(),
							   'timestamp': timestamp()},
						success: success_abm_cliente,
						error: error_abm_cliente
						});

			return false;
			});



	// Boton 'Guardar'.
	jQuery("button[name='guardar']").click(function()
			{
			// Verifico que el nombre del cliente no este en blanco.
			if( jQuery("#form_edicion [name='descripcion']").val().length == 0)
				{
				mostrarMsj("Error","El nombre del cliente no puede estar en blanco");
				return false;
				}

			// Muestro el cartel de espera.
			msjLoading("table_edicion",true);

			// Guardo los datos del usuario.
			jQuery.ajax({
						type: 'POST',
						url: 'svcs/clientes.jsp',
						dataType: 'json',
						data: {'service': 'save',
							   'id': jQuery("#form_edicion [name='id']").val(),
							   'descripcion': jQuery("#form_edicion [name='descripcion']").val(),
							   'activo': jQuery("#form_edicion [name='activo']").attr("checked"),
							   'fantasia': jQuery("#form_edicion [name='fantasia']").attr("checked"),
							   'timestamp': timestamp()},
						success: success_abm_cliente,
						error: error_abm_cliente
						});

			return false;
			});
    });





function success_load_cliente(data, code, xmlHttpRequest)
	{
	// Pongo los datos en el formulario.
	jQuery("#form_edicion [name='id']").val(data.id);
	jQuery("#form_edicion [name='descripcion']").val(data.descripcion);

	if(data.activo)
		jQuery("#form_edicion [name='activo']").attr("checked","checked");
	else
		jQuery("#form_edicion [name='activo']").removeAttr("checked");

	if(data.fantasia)
		jQuery("#form_edicion [name='fantasia']").attr("checked","checked");
	else
		jQuery("#form_edicion [name='fantasia']").removeAttr("checked");

	// Saco el cartel de espera.
	msjLoading("table_resultados",false);

	// Muestro el formulario.
	jQuery('#div_resultados').hide("blind", {}, 300, function()
		{ jQuery('#table_edicion').show("blind", {}, 300); });
	}

function error_load_cliente(xmlHttpRequest, type)
	{
	// Saco el cartel de espera y muestro el error.
	msjLoading("table_resultados",false);
	mostrarMsj("Error","No se pudo establecer la conexión con el servidor: " + type + " " + xmlHttpRequest.status + " (" + xmlHttpRequest.statusText + ")");
	}



function success_abm_cliente(data, code, xmlHttpRequest)
	{
	// Saco el cartel de espera.
	msjLoading("table_edicion",false);

	// Verifico si la operacion fue exitosa o no.
	if(data.code != '0')
		{ mostrarMsj("Error",data.msj); }
	else
		{ document.location.href = document.location.href; }
	}

function error_abm_cliente(xmlHttpRequest, type)
	{
	// Saco el cartel de espera y muestro el error.
	msjLoading("table_edicion",false);
	mostrarMsj("Error","No se pudo establecer la conexión con el servidor: " + type + " " + xmlHttpRequest.status + " (" + xmlHttpRequest.statusText + ")");
	}
